package com.cin.cma.client.config;

import cn.hutool.cron.CronUtil;
import cn.hutool.cron.task.Task;
import lombok.extern.slf4j.Slf4j;


@Slf4j
public abstract class WorkerBase {
    /**
     * 实现结果
     */
    protected abstract void run() throws Exception;

    /**
     * 任务执行
     *
     * @param cron cron表达式
     */
    public void execute(String cron) throws Exception {
        run();
        CronUtil.schedule(cron, (Task) () -> {
            try {
                run();
            } catch (Exception e) {
                log.error("执行定时任务异常", e);
            }
        });
    }
}
